--- id: TASK-003 title: 'TUI news page: split Briefs into 4 per-category panels' status: To Do assignee: [] created_date: '2026-06-11 02:16' updated_date: '2026-06-11 02:24' labels: - bug dependencies: [] priority: medium ordinal: 3000 --- ## Description In tui/dashboard.py, replace the entire page-news layout with exactly four equal DashPanel widgets — one per brief category (Politics, Technology, Sports, Culture). No other panels on this page. New layout (2×2 grid): Row 1: np-brief-politics, np-brief-tech Row 2: np-brief-sports, np-brief-culture Remove from page-news entirely: np-news (Headlines), np-feeds (Feeds), np-hackernews (HN). Those stay on page-personal only. Implementation: - Add render_brief_section(section: dict) -> Text for a single BriefSection. - In refresh_data(), look up each category by key from the briefs payload and feed its panel. - 'No brief.' dim fallback if category missing. Reference: render_briefs() line 513 tui/dashboard.py; BriefSection shape lib/schemas/sources/briefs.ts. ## Acceptance Criteria - [ ] #1 page-news shows 4 equal brief panels (Politics/Tech/Sports/Culture); no merged briefs panel; no headlines panel on news page; each panel shows its category's stories independently - [ ] #2 page-news is exactly 4 panels in 2x2 grid (Politics/Tech/Sports/Culture); no other widgets on the page